Blurring the Borders between Object Composition, Inheritance, and Delegation
نویسندگان
چکیده
Object-oriented languages come with pre-defined composition mechanisms, such as inheritance, object composition, or delegation, each characterized by a certain set of composition properties, which do not themselves individually exist as abstractions at the language level. However, often non-standard composition semantics is needed, with a mixture of composition properties, which is not provided as such by any of the standard composition mechanisms. Such non-standard semantics are simulated by complicated architectures that are sensitive to requirement changes and cannot easily be adapted without invalidating existing clients. This paper is an appetizer for compound references and Latte Macchiato, a Java implementation of compound references. Compound references are a new abstraction for object references, that allows us to provide explicit linguistic means for expressing and combining individual composition properties on-demand. The model is statically typed and allows the programmer to express a seamless spectrum of composition semantics in the interval between object composition and inheritance.
منابع مشابه
Superimposed Delegation
Object composition a well-known programming technique for supporting dynamic adaptation in statically typed class-based object-oriented programming languages suffers from two non-trivial problems; the common-self problem and the object reference update problem. Recently, it has been shown that the common-self problem can be solved for object composition in statically typed class-based languages...
متن کاملComposition through Superimposition
The conventional object-oriented paradigm provides part-of, inheritance and delegation relations as means for composition of objects. Although inheritance and delegation represent a considerable improvement over the module-based third generation languages, we have experienced that certain types of composability cannot be expressed using the aforementioned techniques. In some cases, the software...
متن کاملA metadata-driven approach that combines family polymorphism, delegation and flexible composition semantics
The Lasagne object and component model enables customizations that create multiple, independent context-specific views on an application. Applications are collaborating objects and customizations are refining multiple points in an application in a non-invasive way. We achieve this goal by supporting selective combination of behavioral extensions. Different customizations can be deployed and act...
متن کاملObject-Oriented Composition is Tangled
Object-oriented languages come with pre-defined composition mechanisms, such as inheritance, object composition, or delegation, each characterized by a certain set of composition properties, which do not themselves individually exist as abstractions at the language level. However, often non-standard composition semantics is needed, with a mixture of composition properties, which is not provided...
متن کاملAspect-Oriented Programming Using Composition-Filters
Software engineers may experience problems in modeling certain aspects while applying object-oriented techniques [4, 10, 11]. Composition-Filters are capable of expressing various different kinds of aspects in a uniform manner. These aspects are, for example, inheritance and delegation [1] and atomic delegation [2], multiple views, dynamic inheritance and queries on objects [3], coordinated beh...
متن کامل